Skip to content

V16-UPD-CANCEL-a3: keep the maintenance-entry error on a poisoned slot mutex - #834

Merged
mergify[bot] merged 1 commit into
mainfrom
cursor/w5-v16-upd-cancel-a3
Oct 9, 2026
Merged

mergify[bot] merged 1 commit into
mainfrom
cursor/w5-v16-upd-cancel-a3

Conversation

@Cuarroc

@Cuarroc Cuarroc commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Wenn der Wartungs-Einstieg scheitert und zugleich der Update-Slot-Mutex vergiftet ist, geht der ursprüngliche Fehler nicht mehr verloren. Stattdessen sieht man beide Meldungen in einem kombinierten Text. Drop signalisiert bei vergiftetem Mutex weiterhin wie bisher.

Report

Model: Cursor auto
Package: V16-UPD-CANCEL-a3 (follow-up of #830 / GLM G2)
Tier: A (concurrency primitive)
Head: 58236c3
Base: origin/main @ 55c2238

What changed

  • enter_or_abort: on enter failure, if finish_unstarted also fails (poisoned slot mutex), return "{enter error} (releasing the update slot also failed: {lock error})" instead of dropping the enter error via ?.
  • Analogous combine wording to finish_flight's "leaving maintenance also failed".
  • Drop semantics unchanged (released only after lock ok).
  • New regression test poisoned_slot_keeps_maintenance_entry_error poisons the slot mutex via catch_unwind while holding the guard, then asserts both error texts are present.

Evidence

Command Exit
cargo test --manifest-path src-tauri/Cargo.toml update_cancel 0 (12 passed)
Assertion-RED without fix (same test, old enter_or_abort) 101
bash scripts/ci/red-first.sh --plan 0
bash scripts/ci/red-first.sh 0 (base missing/red, head green)
bash scripts/ci/gates.sh lane prepush 0
git push -u origin HEAD 0
git ls-remote origin refs/heads/cursor/w5-v16-upd-cancel-a3 0 → 58236c3d9aed3701f8ad8f214ef489b92f707de0

Trailer: Test-First: src-tauri/src/update_cancel.rs::poisoned_slot_keeps_maintenance_entry_error

NICHT ABGEDECKT

  • #[cfg(windows)] tests (run_in_pty, npm_shim, ConPTY, DPAPI) and Windows clippy arms — Linux lane only; Windows verdict comes from the merge queue.
  • No live poisoned-mutex observation under a real Tauri updater install path (unit fixture only).

Review

reviews pending Root dispatch: Kimi K3 + GLM 5.2

Architecture drift

No new findings; no allowlist change.

Open points

None for this package. Reviews not started by this worker.

Made with Cursor

Root-Abnahme (head 58236c3, 2026-10-09)

Tier A (concurrency primitive, src-tauri/src/update_cancel.rs only, +27/-2, no seam). Author Cursor auto (family not exposed) → three reviewer families.

Reviewer Report Verdict
Kimi K3 (Moonshot), local Ollama; prompt lists exactly update_cancel.rs F1 low (panic=unwind assumption), F2 low (doc comment of enter_or_abort outdated) approve
GLM 5.2 (Zhipu), local Ollama no findings approve
Claude Sonnet 5.5 (Anthropic), server review-pr834-anthropic-58236c3d9aed.md R834-A1 low (= Kimi F2), A2/A3 info; assertion-RED replay at the merge base: exit 101 approve
ID Severity Disposition
Kimi F1 / R834-A2 low/info rejected as defect: no panic profile override in src-tauri/Cargo.toml; under abort the branch is unreachable and harmless
Kimi F2 / R834-A1 low (doc) follow-up: reword the enter_or_abort doc comment (update_cancel.rs:89) — "release is attempted; if it fails both errors are returned and Drop signals the fixed restart error"
R834-A3 info trailer form accepted by red-first.sh --plan (exit 0)

NICHT ABGEDECKT (Root): Windows lane only in the merge queue; no runtime test of the main.rs caller with a real poisoned mutex.

When finish_unstarted fails after a failed enter, combine both errors
instead of dropping the original maintenance-entry failure via ?.

Test-First: src-tauri/src/update_cancel.rs::poisoned_slot_keeps_maintenance_entry_error
Co-authored-by: Cursor <cursoragent@cursor.com>
@mergify

mergify Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Merge Protections

🟢 All 2 merge protections satisfied — ready to merge.

Show 2 satisfied protections

🟢 Paket-PR bringt seinen Bericht mit

Package branches (w<N>-, df<N>, ki-<N>, hq2-, dr-, z<N>-) must carry their report in the PR body, in a section that starts with "## Report".

  • body ~= (?m)^## Report

🟢 🚦 Auto-queue

When all merge protections are satisfied and these conditions match, this pull request will be queued automatically.

  • -conflict
  • -draft
  • base = main
  • check-success = gates (linux)
  • check-success = gates (windows)
  • check-success = red-first
  • label != do-not-merge
  • label = review-ok

@Cuarroc
Cuarroc marked this pull request as ready for review October 9, 2026 09:47
@Cuarroc Cuarroc added the review-ok Pipeline: review disposition complete, no open high finding label Oct 9, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T09:49:13.899086Z 58236c3 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@mergify mergify Bot added the queued label Oct 9, 2026
@mergify
mergify Bot merged commit 34f2b0b into main Oct 9, 2026
17 checks passed
@mergify
mergify Bot deleted the cursor/w5-v16-upd-cancel-a3 branch October 9, 2026 10:13
@mergify

mergify Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

This pull request spent 15 minutes 4 seconds in the queue, including 14 minutes 47 seconds running CI.

Required conditions to merge
  • check-success = gates (linux)
  • check-success = gates (windows)
  • check-success = red-first
  • github-review-approved [🛡 GitHub repository ruleset rule main-pr-required-checks]
  • label != do-not-merge
  • all of [🛡 Merge Protections rule Paket-PR bringt seinen Bericht mit]:
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/gates (linux)
    • check-neutral = @github-actions/gates (linux)
    • check-skipped = @github-actions/gates (linux)
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/gates (windows)
    • check-neutral = @github-actions/gates (windows)
    • check-skipped = @github-actions/gates (windows)
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-success = @github-actions/red-first
    • check-neutral = @github-actions/red-first
    • check-skipped = @github-actions/red-first
  • any of [🛡 GitHub repository ruleset rule main-pr-required-checks]:
    • check-neutral = @mergify/Mergify Merge Protections
    • check-skipped = @mergify/Mergify Merge Protections
    • check-success = @mergify/Mergify Merge Protections

@mergify mergify Bot removed the queued label Oct 9, 2026
mergify Bot added a commit that referenced this pull request Oct 9, 2026
V16-06-FU: opener-order test, stderr hardening, doc fixes (#832/#834 follow-ups)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review-ok Pipeline: review disposition complete, no open high finding

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant